package com.ssy.lingxi.contract.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.contract.api.model.vo.request.PurchaseInquiryAddVO;
import com.ssy.lingxi.contract.entity.PurchaseInquiryDO;
import com.ssy.lingxi.contract.model.vo.common.request.PurchaseInquiryPageVO;
import com.ssy.lingxi.contract.model.vo.common.response.PurchaseInquiryQueryVO;

import java.util.List;

/**
 * 采购询价合同接口定义
 * @author 伍将
 * @date 2021/3/4
 * @version 2.0.0
 */
public interface IPurchaseInquiryService {

    /**
     * 批量新增采购询价合同
     * @author 伍将
     * @date 2021/3/4
     * @param addVOList: 新增请求参数
     * @return 操作结果
     **/
    Wrapper<Void> addList(List<PurchaseInquiryAddVO> addVOList);

    /**
     * 分页查询待创建采购询价合同
     * @author 伍将
     * @date 2021/3/4
     * @param user: 当前登录用户
     * @param pageVO: 分页请求参数
     * @return 操作结果
     **/
    Wrapper<PageData<PurchaseInquiryQueryVO>> pageToBeCreate(UserLoginCacheDTO user, PurchaseInquiryPageVO pageVO);

    /**
     * 更新采购询价合同创建状态
     * @author 伍将
     * @date 2021/3/4
     * @param user: 当前登录用户
     * @param demandId: 需求单id
     * @param awardMemberId: 授标会员id
     * @param awardRoleId: 授标会员角色id
     * @param: 创建合同：0-否，1-是
     * @return 操作结果
     **/
    Wrapper<Void> updateCreateStatus(UserLoginCacheDTO user, Long demandId, Long awardMemberId, Long awardRoleId, Integer isCreate);

    /**
     * 检查采购询价合同是否已创建合同
     * @author 伍将
     * @date 2021/3/4
     * @param user: 当前登录用户
     * @param demandId: 需求单id
     * @param awardMemberId: 授标会员id
     * @param awardRoleId: 授标会员角色id
     * @return 操作结果
     **/
    PurchaseInquiryDO checkCreate(UserLoginCacheDTO user, Long demandId, Long awardMemberId, Long awardRoleId);
}
